//
//  NSDate+Extension.swift
//  weibo
//
//  Created by Apple on 16/3/17.
//  Copyright © 2016年 KY. All rights reserved.
//

import Foundation

extension NSDate {
    //  根据传入的发微博时间字符串转成时间对象
    class func sinaDate(createDateStr: String) -> NSDate? {
     
        //Thu Mar 17 11:06:21 +0800 2016
        let dateFormat = NSDateFormatter()
        //  指定时间格式化
        dateFormat.dateFormat = "EEE MMM dd HH:mm:ss z yyyy"
        //  指定本地信息
        dateFormat.locale = NSLocale(localeIdentifier: "en_US")
        
        let date = dateFormat.dateFromString(createDateStr)
        return date
    }
    /*
    如果是今年
        是否是今天
            是否在1分钟之内
                刚刚
            是否在1小时之内
                xx分钟前
            其他
                xx小时前
    
        是否是昨天
            昨天 10：10
        其他
            10-23 10: 10
        如果不是今年
            2015-03-10 10:20
    */
    //  根据时间对象转成时间字符串
    func sinaDateString() -> String {
        let currentCalendar = NSCalendar.currentCalendar()
        let dateFormat = NSDateFormatter()

        //  指定本地信息
        dateFormat.locale = NSLocale(localeIdentifier: "en_US")
        
        if isThisYear(self) {
            
            if currentCalendar.isDateInToday(self) {
                //  今天
                //                   let timeInterval = createDate.timeIntervalSinceDate(NSDate())
                
                //  取绝对值
                let timeInterval = abs(self.timeIntervalSinceNow)
                
                if timeInterval < 60 {
                    return "刚刚"
                } else if timeInterval < 60 * 60 {
                    return "\(Int(timeInterval) / 60)分钟前"
                } else {
                    return "\(Int(timeInterval) / (60 * 60))小时前"
                }
                
                
            } else if currentCalendar.isDateInYesterday(self) {
                //  昨天
                dateFormat.dateFormat = "昨天 HH:mm"
            } else {
                //  其他
                dateFormat.dateFormat = "MM-dd HH:mm"
            }
            
            
        } else {
            dateFormat.dateFormat = "yyyy-MM-dd HH:mm"
        }
        return dateFormat.stringFromDate(self)
    }
    
    //  判断传入的时间跟当前时间对比，判断是否是同一年
    private func isThisYear(createDate: NSDate) -> Bool {
        
        let dateFormat = NSDateFormatter()
        //  指定时间格式化
        dateFormat.dateFormat = "yyyy"
        //  指定本地信息
        dateFormat.locale = NSLocale(localeIdentifier: "en_US")
        //  获取当前时间
        let currentDate = NSDate()
        //  获取到当前时间的年份
        let currentDateYearStr = dateFormat.stringFromDate(currentDate)
        
        let createDateYearStr = dateFormat.stringFromDate(createDate)
        
        return currentDateYearStr == createDateYearStr
        
    }
    

}